C语言的符号问题``

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:10:47
‘\n’和"\n" 'a'和"a" (c=getchar())!='\n' 三个什么意思 有头搞来搞去。。。

这个问题是字符与字符串的区别的问题。
首先认识下字符。字符是指一个字的符号。请注意,只是一个字。
再来认识下字符串,字符串是由字符组成的串。但是请注意在c语言中字符串必须以‘\0’结束。‘\0’是一个字符,对应ancii表的0号字符也就是空字符。在定字符串时不需要写出该字符。但是编译器会自动为你生成这个‘\0’。你可以做以下实验:
char aaa[] = "0";
char a = '0';
cout << sizeof(aaa) << endl;
cout << sizeof(a) << endl;
结果是2、1,可是aaa的字符串明明只有一个字符。多出的那个空位就是放了‘\0’

现在再来解释楼主的问题。c语言中''和""分别表示字符和字符串,所以'\n'只是一个字符。"\n"是一个字符串,其中内容是:"\n\0",'a'和"a"也是一样的'a'是个字符,"a"是个字符串,其中内容是:"a\0"。

最后一个比较麻烦。首先根据优先级决定运算先后顺序,我把它分解了,也就下面这样:
c=getchar(); // 这句话有个值,也就是c的值。c语言每句话都有一个值,之所能把它放在括号里就是因为这句话执行完了就返回了c的值
c!='\n'; // 这句话就是判段c的值是不是等于'\n'也就是回车键。

希望对你有帮助,还有什么问题请修改提问。

" "所引的是字符串,而‘ ’所引的是字符,'\n'是换行的意思,(c=getchar())!='\n'意思是输入一个字符判断不为换行